package modes

import (
	"fmt"
)

/*
 * 描述：订单--学历
 *
 ********************************************************************************************/
type OrderSchooling struct {
	Id        int64  `json:"sch_id" xorm:"id" form:"-"`                                             // 订单ID
	SId       int64  `json:"sch_sid" xorm:"sid" form:"sid" binding:"required"`                      // 学校ID
	SName     string `json:"sch_sname" xorm:"sname" form:"sname" binding:"required"`                // 学校名称
	SsionId   int64  `json:"sch_ssion_id" xorm:"ssion_id" form:"ssion_id" binding:"required"`       // 专业ID
	SsionName string `json:"sch_ssion_name" xorm:"ssion_name" form:"ssion_name" binding:"required"` // 专业名称
	ScNumber  int    `json:"sch_sc_number" xorm:"sc_number" form:"sc_number" binding:"required"`    // 学历   1 中专 2 大专 3 本科
	TestType  int    `json:"sch_test_type" xorm:"test_type" form:"test_type" binding:"required"`    // 考试类型 1 网教自己考，2 网教直取，3 成考
	UName     string `json:"sch_uname" xorm:"uname" form:"uname" binding:"required"`                // 学员姓名
	NUmberId  string `json:"sch_number_id" xorm:"number_id" form:"number_id" binding:"required"`    // 身份证号
	Domicile  string `json:"sch_domicile" xorm:"domicile" form:"domicile" binding:"required"`       // 户籍地
	OrderId   int64  `json:"sch_order_id" xorm:"order_id" form:"oid" binding:"required"`            // 订单ID
	RealPrice int64  `json:"sch_price" xorm:"real_price" form:"price" binding:"required"`           // 实付价格
}

func (this *OrderSchooling) TableName() string {
	return "order_schooling"
}

func (this *OrderSchooling) Save() (int64, error) {
	return Db(2).Insert(this)
}

func (this *OrderSchooling) Where(fage, count, page int, where, field string) ([]OrderSchooling, error) {
	list := make([]OrderSchooling, 0)
	var err error
	if field == "" {
		field = "id"
	}
	page--
	if 0 == fage { // 从小到大排序
		err = Db(2).Table(this.TableName()).Where(where).
			Asc(field).
			Limit(count, page*count).
			Find(&list)
	} else { // 从大到小排序
		err = Db(2).Table(this.TableName()).Where(where).
			Desc(field).
			Limit(count, page*count).
			Find(&list)
	}
	return list, err
}

func (this *OrderSchooling) List(id int64) ([]OrderSchooling, error) {
	where := fmt.Sprintf("order_id = %d", id)
	return this.Where(1, 10, 0, where, "")
}
func (this *OrderSchooling) ListByIds(ids []int64) ([]OrderSchooling, error) {
	list := make([]OrderSchooling, 0)
	err := Db(2).Table(this.TableName()).In("order_id", ids).Find(&list)
	return list, err
}
